#include <linux/init.h>

static int _0start(void)
{
    return 0;
}
__define_initcall(_0start, 0.0);

static int _0end(void)
{
    return 0;
}
__define_initcall(_0end, 0.2);

static int _7end(void)
{
    return 0;
}
__define_initcall(_7end, 7.1);

static int _8end(void)
{
    return 0;
}
__define_initcall(_8end, 8.1);

void call_early_init(void)
{
    initcall_t *fn;
    initcall_t *end = &__initcall_0end;

    for (fn = &__initcall_0start; fn < end; fn++)
    {
        (*fn)();
    }
}

void call_late_init(void)
{
    initcall_t *fn;

    for (fn = &__initcall_7end; fn < &__initcall_8end; fn++)
    {
        (*fn)();
    }
}
